package com.qinsheng.domain.activity.service;

import com.qinsheng.domain.activity.model.valobj.ActivitySkuStockKeyVO;

/**
 * ClassName: ISkuStock
 * Description: 活动sku库存处理接口
 *
 * @Author: qinsheng1900
 * @Create 2025/3/13 11:40
 * @Version 1.0
 */
public interface IRaffleActivitySkuStockService {
    /**
     * 获取活动sku库存消耗队列
     * @return
     * @throws InterruptedException
     */
    ActivitySkuStockKeyVO takeQueueValue() throws InterruptedException;

    /**
     * 清空队列，库存更新完了，延迟队列清空
     */
    void clearQueueValue();

    /**
     * 延迟队列 + 任务趋势更新活动sku库存
     */
    void updateActivitySkuStock(Long sku);

    /**
     * 库存消耗完 MQ消息，清空数据库库存
     */
    void clearActivitySkuStock(Long sku);
}
